package com.molihub.mapper;

import com.molihub.entity.RegionStatistic;
import com.molihub.entity.Visitor;
import com.molihub.entity.VisitorStatistic;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

 /**
 * @InterfaceName VisitorDao
 * @Description (Visitor)表数据库访问层
 * @author 莫提
 * @date 2020-02-16 14:23:26
 * @Version 1.0
 **/
@Mapper
public interface VisitorMapper {

    /**
     * @Description 添加Visitor
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * @param visitor 实例对象
     * @return 影响行数
     */
    int insert(Visitor visitor);
    
    /**
     * @Description 删除Visitor
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);

    /**
     * @Description 查询单条数据
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * @param id 主键
     * @return 实例对象
     */
    Visitor queryById(Integer id);

    /**
     * @Description 查询全部数据
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * 分页使用MyBatis的插件实现
     * @return 对象列表
     */
    List<Visitor> queryAll();

    /**
     * @Description 实体作为筛选条件查询数据
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * @param visitor 实例对象
     * @return 对象列表
     */
    List<Visitor> queryAll(Visitor visitor);

    /**
     * @Description 修改Visitor
     * @author 莫提
     * @date 2020-02-16 14:23:26
     * @param visitor 根据visitor的主键修改数据
     * @return 影响行数
     */
    int update(Visitor visitor);

    /**
     * @Description 获得七天内的访问数据（type为0，访问数据，type为1，阅读数据）
     * @Author xw
     * @Date 19:53 2020/2/16
     * @Param [userId, type]
     * @return java.util.List<com.molihub.entity.VisitorStatistic>
     **/
    List<VisitorStatistic> getStatisticIn7Days(Integer userId,Integer type);

    /**
     * @Description 获得用户今日各个省份的访客数据
     * @Author xw
     * @Date 19:02 2020/2/18
     * @Param [userId]
     * @return java.util.List<com.molihub.entity.Visitor>
     **/
    List<RegionStatistic> getTodayVisitors(Integer userId);

}